#ifndef APPLICATIONSETTINGS_H
#define APPLICATIONSETTINGS_H

#include <QObject>

class QMainWindow;

class ApplicationSettings : public QObject
{
   Q_OBJECT
public:
   explicit ApplicationSettings(QObject *parent = 0) :
      QObject(parent) {}

public:
   typedef enum
   {
      NATIVE = 0,
      LOCALE
   } Language;

signals:
   /** emitted when the list of recent shows changes */
   void recentShowsChanged();

public:
   /** @{ full path of last opened show*/
   void addRecentShowFile(const QString &filePath);
   void removeRecentShowFile(const QString &filePath);
   QStringList recentShowFiles() const;
   int maxRecentShowFiles() const;
   /** @} */

   /** @{ volume that is set when 'default' button is pressed */
   void setDefaultVolume(int volume);
   int defaultVolume() const;
   /** @} */

   /** @{ current language */
   void setLanguage(Language language);
   Language language() const;
   /** @} */

   /** @{ position of main window and docked widgets */
   void saveWindowSetting(const QByteArray windowSetting);
   void saveWindowGeometry(const QByteArray windowGeometry);
   QByteArray getPreviousWindowSetting() const;
   QByteArray getPreviousWindowGeometry() const;
   /** @} */

   /** @{ last directory for opening files */
   void setOpenMusicFolder( const QString & folder);
   QString openMusicFolder() const;
   void setOpenScriptFolder( const QString & folder);
   QString openScriptFolder() const;
   /** @} */
};

#endif // APPLICATIONSETTINGS_H
